package com.yunhe.inspect.repository;
import com.yunhe.inspect.domain.DataInspectPlan;
import com.yunhe.inspect.model.DataInspectPlanQueryCondition;
import com.yunhe.inspect.model.DataInspectPlanVo;
import com.yunhe.inspect.model.DisableRecoveryStatus;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
 * @description 巡检计划表
 * @author misty
 * @date 2021-11-09
 */
@Repository
public interface DataInspectPlanRepository {

    /**
     * 新增
     * @author misty
     * @date 2021/11/09
     **/
    int createDataInspectPlan(DataInspectPlan dataInspectPlan);

    /**
     * 新增
     * @author misty
     * @date 2021/11/09
     **/
    int createDataInspectPlanSelective(DataInspectPlan dataInspectPlan);

    /**
     * 刪除
     * @author misty
     * @date 2021/11/09
     **/
    int deleteDataInspectPlanByPrimaryKey(@Param("id") int id);

    /**
     * 更新
     * @author misty
     * @date 2021/11/09
     **/
    int updateDataInspectPlanByPrimaryKey(DataInspectPlan dataInspectPlan);

    /**
     * 更新
     * @author misty
     * @date 2021/11/09
     **/
    int updateDataInspectPlanByPrimaryKeySelective(DataInspectPlan dataInspectPlan);

    /**
     * 根据主键查询
     * @author misty
     * @date 2021/11/09
     **/
    DataInspectPlan searchDataInspectPlanByPrimaryKey(@Param("id") int id);


    void deleteDataInspectPlanByIds(@Param("ids") List<Integer> ids,@Param("headerUser") Long headerUser);

    void disableRecoveryDataInspectPlan(DisableRecoveryStatus disableRecoveryStatus);

    List<DataInspectPlanVo> findDataInspectPlan(DataInspectPlanQueryCondition dataInspectPlanQueryCondition);

    List<DataInspectPlan> findDataInspectPlanByInspectPlanCycleStatus();

    void updateRecordTime(@Param("id") Integer id);
}